home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 1 / LSD Compendium Deluxe 1.iso / a / programming / assembly / i-tpower.lha / ice-t_power / ICE-T_POWER.S < prev   
Encoding:
Text File  |  1988-10-24  |  34.0 KB  |  1,219 lines

  1. >EXTERN "ICE-T_POWER.DATA",$60000
  2. ***********************************************************
  3. *          Short Sinus Intro V2.1
  4. *    Coded by Ice-T of Thrust in 1989
  5. * This Intro was originally coded for Supreme , but
  6. * as noone used it I sold to the group ''ICE-T Power''
  7. *       Yes , they are my fan-club !
  8. *
  9. * Instructions :
  10. *
  11. * How to edit the Scroll and its functions ( at line 182 ):
  12. * - A 's' ( not a capital 'S' !! ) makes the scrollmachine
  13. *   to hold for a while .
  14. * - The numbers from '1' to '8' direct the scrollspeed of the 
  15. *   sinus wave ( 1 = very slow  ... 8 = very fast )   
  16. * - As I am a real lazy guy I did not implent an extra driver
  17. *   for the extra symbols !
  18. *   Well , its now up to you to discover them .....
  19. *   Example : a 'n' summits the cauldron
  20. *             a '[' produces a '!'     etc.
  21. *   Feel free to implent the extra symbol selector on your own !!!
  22. * How to make it run :
  23. *
  24. * - Use 'ri' to load the file 'raw!' to $60000
  25. * - Use 'ri' to load a song  to $40000
  26. * - Now assemble the whole crap and type 'g $5b000'
  27. *
  28. * How to pack this small bunch of bytes :
  29. *
  30. * - Assemble this Source 
  31. * - type wi and enter the filename then type , when the comp. is
  32. *   up to ask for the Begin : $5b000 <RETURN> ( HARR HARR )
  33. *   The End-Address is 'Program_end' .... ( That means , that when
  34. *   the End-Address is requested you have to enter 'Program_end !! )
  35. * - Now load Tetrapack and link the code !!
  36. * - load 'raw!' to $60000 with the option 'o' for 'plain'
  37. * - load the code you have saved with the Seka to $5b000  with
  38. *   option 'o' , too.
  39. * - load 'song' to $40000 with .......
  40. * - When Jump Address is requested type '$5b000' !!!
  41. *
  42. * If there are any questions call my BBS 049-412-330 
  43. * PS: If there's not enough Disk-Space just don't load the song
  44. * and delete Line 98,138,143 and the lines from 891 to 'program_end' !
  45. * But DO NOT (!) remove the label 'PROGRAM_END' !!!!!!!!
  46. *     ======        
  47. *
  48.       
  49. org $5b000
  50. load $5b000
  51.  
  52. dmacon   = $dff096    
  53. dmaconr  = $dff002
  54. cop1lch  = $dff080    
  55. copjmp1  = $dff088    
  56.  
  57. intreq   = $dff09c    
  58. intreqr  = $dff01e     
  59. intena   = $dff09a    
  60.  
  61.  
  62. bltapth  = $dff050
  63. bltbpth  = $dff04c
  64. bltcpth  = $dff048
  65. bltdpth  = $dff054
  66. bltamod  = $dff064
  67. bltbmod  = $dff062
  68. bltcmod  = $dff060
  69. bltdmod  = $dff066
  70. bltafwm  = $dff044
  71. bltalwm  = $dff046
  72. bltcon0  = $dff040
  73. bltcon1  = $dff042
  74. bltsize  = $dff058
  75.  
  76. go:
  77. movem.l    d0-d7/a0-a6,-(a7)
  78. move.l    #quantum,$80
  79. trap    0
  80. moveq    #$0000,d0
  81. movem.l    (a7)+,d0-d7/a0-a6
  82. rts
  83. counter:
  84. dc.w 0
  85. quantum:
  86. move.w    #$2700,sr
  87. move.w    #$0020,$dff096
  88. move.w    #$8400,$dff096
  89. bsr    clear
  90. bsr    maker
  91. bsr    start_muzak
  92. bsr    create_cop1
  93. bsr    create_cop2
  94. move.l    #newclist,$dff080
  95. main:
  96. cmp.b    #$4f,$dff006
  97. bne.s    main
  98. move.w  #$8660,bit
  99. move.w  #$9178,bit2
  100. move.l  #$757a8,test3
  101. move.l  #$757a8,tentakel2
  102. add.w   #1,counter
  103. cmp.w   #2,counter
  104. bne     double_buffer
  105. clr.w   counter
  106. move.w  #$3660,bit
  107. move.w  #$4178,bit2
  108. move.l  #$7a7a8,test3
  109. move.l  #$7a7a8,tentakel2
  110. double_buffer:
  111. bsr    sort
  112. movem.l    d0-d7/a0-a6,-(a7)
  113. bsr.l    loesch           
  114. movem.l    (a7)+,d0-d7/a0-a6
  115.  
  116. bsr    sinus
  117.  
  118. bsr    blit2
  119. cmp.w   #1,stop2
  120. bne     okay
  121. add.w   #1,counter2
  122. cmp.w   #280,counter2
  123. bne     out
  124. clr.w   counter2
  125. clr.w   stop2
  126. out:
  127. bra    nix
  128. okay:
  129. bsr    scrolltext
  130. nix:
  131. bsr    replay_muzak
  132. irqend:
  133. btst    #$6,$bfe001
  134. bne.L    main
  135. bsr    oldcopper
  136. bsr    stop_muzak
  137. move.w    #$8020,$dff096
  138. move.w    #$0400,$dff096
  139. move.w    #$2000,sr
  140. rte
  141. stop2:
  142. dc.w 0
  143. counter2:
  144. dc.w 0
  145. puffer:    blk.b    64*4,0
  146. save_stack:    blk.l    1,0
  147. tentakel2:
  148. dc.l 0
  149.  
  150. loesch:
  151. move.l    a7,save_stack    
  152. lea    puffer(pc),a7
  153. movem.l    (a7)+,d0-d7/a0-a6
  154. move.l    save_stack,a7
  155. move.l    tentakel2(pc),a6
  156. add.l    #40*40,a6
  157. move.w    #194,d7
  158. loelo2:
  159. movem.l    a0-a5/d0-d6,-(a6)
  160. subq.w #1,d7
  161. bne loelo2
  162. rts
  163. oldcopper:
  164. move.l    $4,a6
  165. lea    gfxname,a1        
  166. jsr    -408(a6)        
  167. move.l    d0,a1            
  168. move.l    38(a1),$dff080        
  169. jsr    -414(a6)        
  170. rts
  171. letters2:                  ;
  172. dc.b "3 HI THERE ALL YOU SHIThHEADS ["
  173. dc.b "     pnp ICEhT pnp   s"
  174. dc.b " IS BACK WITH ANOTHER SHORT INTRO [[[ " 
  175. end222:
  176. even
  177.  
  178. clear:
  179. lea $6b000,a0
  180. lea $7fffe,a1
  181. loop7:
  182. clr.l (a0)+
  183. cmp.l a1,a0
  184. blt    loop7
  185. rts
  186.  
  187.  
  188. next_letter:
  189. move.l    #$69340,a1    
  190. move.l    letter_pointer,a2
  191. move.b    (a2),d0
  192. cmp.b   #$49,d0
  193. beq    setting
  194. cmp.b   #94,d0
  195. beq    setting2
  196. cmp.b   #$31,d0
  197. beq    setting3
  198. cmp.b   #$32,d0
  199. beq    setting4
  200. cmp.b   #$33,d0
  201. beq    setting5
  202. cmp.b   #$34,d0
  203. beq    setting6
  204. cmp.b   #$35,d0
  205. beq    setting7
  206. cmp.b   #$36,d0
  207. beq    setting8
  208. cmp.b   #$37,d0
  209. beq    setting8
  210. cmp.b   #$38,d0
  211. beq    setting10
  212. cmp.b   #$73,d0
  213. beq    setting11
  214. move.w  #$8,compare
  215. tu:
  216. cmp.b    #$41,d0
  217. bmi    special_font
  218. add.l    #1,letter_pointer
  219. sub.b    #$41,d0
  220. lcont:    
  221. mulu    #$2,d0
  222. add.l    d0,a1
  223. cmp.l   #end222,a2
  224. beq     ender
  225. bra.L    blit
  226. special_font:
  227. lea     $6a000,a1
  228. add.l    #1,letter_pointer
  229. bra.s    lcont
  230. ender:
  231. clr.l   letter_pointer
  232. move.l    reset,letter_pointer
  233. bra.L    next_letter        
  234. rts
  235.  
  236. setting:
  237. move.w #$4,compare
  238. bra    tu
  239. rts
  240.  
  241. setting2:
  242. move.w #$4,compare
  243. bra    tu
  244. rts
  245.  
  246. setting3:
  247. move.l #8,sortfac
  248. bra    special_font
  249. rts
  250.  
  251. setting4:
  252. move.l #12,sortfac
  253. bra    special_font
  254. rts
  255.  
  256. setting5:
  257. move.l #16,sortfac
  258. bra    special_font
  259. rts
  260.  
  261. setting6:
  262. move.l #20,sortfac
  263. bra    special_font
  264. rts
  265.  
  266. setting7:
  267. move.l #24,sortfac
  268. bra    special_font
  269. rts
  270.  
  271. setting8:
  272. move.l #28,sortfac
  273. bra    special_font
  274. rts
  275.  
  276. setting9:
  277. move.l #32,sortfac
  278. bra    special_font
  279. rts
  280.  
  281. setting10:
  282. move.l #36,sortfac
  283. bra    special_font
  284. rts
  285.  
  286. setting11:
  287. move.w #$1,stop2
  288. bra    special_font
  289. rts
  290.  
  291.  
  292.  
  293. blit:        
  294. move.w    #94,bltamod
  295. move.w    #40,bltdmod
  296. move.l  a1,bltapth
  297. move.l    #$72042,bltdpth;$8a4
  298. move.w    #%1111111111111111,bltafwm
  299. move.w    #%1111111111111111,bltalwm
  300. move.w    #%0000100111110000,bltcon0
  301. move.w  #%0000000000000000,bltcon1
  302. move.w    #%0000111100000001,bltsize
  303. clr.w    blitcounter
  304. blw1:    
  305. btst    #6,dmaconr
  306. bne.s    blw1    
  307. rts
  308.  
  309. blit2:        
  310. move.w    #%1111111111111111,bltafwm
  311. move.w    #%1111111111111111,bltalwm
  312. rts
  313. sortex:
  314. rts
  315.  
  316. sort:
  317. cmp.l #sinustabend,multi2
  318. blt   more
  319. ;move.l #multi,multi2
  320. sub.l  #1258,multi2
  321. more:
  322. move.l sortfac,d7
  323. add.l d7,multi2
  324. rts
  325. sortfac:
  326. dc.l 20
  327. multi2:
  328. dc.l multi
  329. test3:
  330. dc.l 0
  331. test:
  332. dc.l 0
  333.  
  334. maker:
  335. lea multi,a0
  336. lea abs_end,a1
  337. looping:
  338. move.w (a0),d5
  339. mulu   #40,d5
  340. move.w d5,(a0)+
  341. cmp.l a0,a1
  342. bne    looping
  343. rts
  344.  
  345. sinus:        
  346. ;move.w  #$0f00,$dff180
  347. move.w    #40,bltamod
  348. move.w    #38,bltbmod
  349. move.w    #38,bltdmod
  350. move.l    #$727d0,test;$727d0
  351. move.w    #19,d4
  352. move.l    multi2,a6
  353.  
  354. move.w    #%0000110111111100,bltcon0
  355. move.w  #%0000000000000010,bltcon1
  356. looper:
  357. move.w  #$8000,d7
  358. moveq  #16,d6
  359. move.l  test3,test2
  360.  
  361. loop:
  362. move.l  test3,d5
  363. sub.l    (a6),d5
  364. addq.l  #2,a6
  365. move.l  test,bltapth
  366. move.l    d5,bltbpth
  367. move.l    d5,bltdpth;$8a4
  368. move.w    d7,bltafwm
  369. move.w    #%0000001110000001,bltsize
  370. lsr.w   #1,d7
  371. subq    #1,d6
  372. bne     loop
  373. addq.l    #2,test
  374. addq.l    #2,test3
  375.  
  376. dbra    d4,looper
  377. move.w  #$0000,$dff180
  378.  
  379. rts
  380.  
  381.  
  382. scrolltext:
  383. addq    #1,blitcounter
  384. clr.w   bltamod
  385. clr.w   bltdmod
  386. move.l    #$7281e,bltapth
  387. move.l    #$7281e,bltdpth
  388. move.w    #%0010100111110000,bltcon0
  389. move.w    #%0000010000010101,bltsize
  390. blw2:    
  391. btst    #6,dmaconr
  392. bne.s    blw2
  393. move.w  compare,d0
  394. cmp.w    blitcounter,d0
  395. bne.s    bcont
  396. bsr    next_letter
  397. bcont:
  398. rts
  399.  
  400. compare:
  401. dc.w 5
  402.  
  403.  
  404. create_cop1:
  405. lea waittab1,a0
  406. lea coleurs,a1
  407. move.w #34,d0
  408. move.w #$5109,d1
  409. loop4:
  410. move.w d1,(a0)+
  411. move.w #$fffe,(a0)+
  412. move.w #$01a0,(a0)+
  413. move.w (a1),(a0)+
  414. move.w #$01a2,(a0)+
  415. move.w (a1),(a0)+
  416. move.w #$01a4,(a0)+
  417. move.w (a1),(a0)+
  418. move.w #$01a6,(a0)+
  419. move.w (a1),(a0)+
  420. move.w #$01a8,(a0)+
  421. move.w (a1),(a0)+
  422. move.w #$01aa,(a0)+
  423. move.w (a1),(a0)+
  424. move.w #$01ac,(a0)+
  425. move.w (a1),(a0)+
  426. move.w #$01ae,(a0)+
  427. move.w (a1),(a0)+
  428. move.w #$01b0,(a0)+
  429. move.w (a1),(a0)+
  430. move.w #$01b2,(a0)+
  431. move.w (a1),(a0)+
  432. move.w #$01b4,(a0)+
  433. move.w (a1),(a0)+
  434. move.w #$01b6,(a0)+
  435. move.w (a1),(a0)+
  436. move.w #$01b8,(a0)+
  437. move.w (a1),(a0)+
  438. move.w #$01ba,(a0)+
  439. move.w (a1),(a0)+
  440. move.w #$01bc,(a0)+
  441. move.w (a1),(a0)+
  442. move.w #$01be,(a0)+
  443. move.w (a1)+,(a0)+
  444. add.w  #$0200,d1
  445. dbra    d0,loop4
  446. rts
  447.  
  448. create_cop2:
  449. lea waittab2,a0
  450. lea coleurs2,a1
  451. move.w #$9709,d1
  452. move.w #51,d0
  453. loop5:
  454. move.w d1,(a0)+
  455. move.w #$fffe,(a0)+
  456. move.w #$0182,(a0)+
  457. move.w (a1)+,(a0)+
  458. add.w  #$0200,d1
  459. dbra   d0,loop5
  460. move.w #$ffd9,(a0)+
  461. move.w #$fffe,(a0)+
  462. move.w #$0182,(a0)+
  463. move.w (a1)+,(a0)+
  464.  
  465. move.w #$00e9,d1
  466. move.w #51,d0
  467. lea    cox,a2
  468. lea    mir,a3
  469. loop6:
  470. move.w d1,(a0)+
  471. move.w #$fffe,(a0)+
  472. move.w #$0108,(a0)+
  473. move.w (a3)+,(a0)+
  474. move.w #$0180,(a0)+
  475. move.w (a2)+,(a0)+
  476. move.w #$0182,(a0)+
  477. move.w (a1)+,(a0)+
  478. add.w  #$0200,d1
  479. dbra   d0,loop6
  480. rts
  481. cox:
  482. dc.w $100,$200,$300,$400,$500,$600,$700,$800
  483. dc.w $900,$a00,$b00,$c00,$d00,$e00,$f00,$004
  484. dc.w $1,$3,$5,$7,$9,$b,$d,$f,$1f,$3f,$5f,$7f
  485. dc.w $9f,$bf,$df,$ff
  486. dc.w 5,5,5,5,5,5,5,5,5,5
  487. dc.w 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
  488. dc.w 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
  489. dc.w 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
  490. dc.w 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
  491. dc.w 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
  492. dc.w 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
  493. dc.w 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
  494.  
  495. mir:
  496. dc.w 0,0
  497. dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-120,-120
  498. dc.w -120,-120,-120,-120,-120,-120,-120,-120,-80,0,0
  499. dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  500. dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  501. dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  502. dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  503.  
  504.  
  505. newclist:
  506. dc.w    $008e,$2821,$0090,$44c1,$0092,$0038,$0094,$00d0
  507. dc.w    $0108,0,$010a,0
  508. dc.w    $0102,$0000,$0104,$0000
  509. dc.w    $0182,$0fff
  510. dc.w    $0100,$4200;,$0180,$0000
  511. dc.w    $00e0,$0005,$00e2,$fffe
  512. dc.w    $00e4,$0006,$00e6,$1f3e
  513. dc.w    $00e8,$0006,$00ea,$3e7e
  514. dc.w    $00ec,$0006,$00ee,$5dbe
  515. dc.w    $0180,$0000,$0182,$0ff0
  516. dc.w    $0184,$0fe0,$0186,$0fd0
  517. dc.w    $0188,$0fb0,$018a,$0fa0
  518. dc.w    $018c,$0f90,$018e,$0f80
  519. dc.w    $0190,$0d60,$0192,$0b50
  520. dc.w    $0194,$0a40,$0196,$0840
  521. dc.w    $0198,$0630,$019a,$0520
  522. dc.w    $019c,$0310,$019e,$0100
  523. dc.w    $5009,$fffe,$0100,$5200
  524. dc.w    $0100,$5200,$0180,$0000
  525. dc.w    $00f0,$0007,$00f2
  526. bit:
  527. dc.w    $3660
  528.  
  529. ;dc.w    $01a6,$0fff
  530. waittab1:
  531. blk.w   1190,0  
  532. dc.w    $9709,$fffe
  533. dc.w    $0100,$1200
  534. dc.w    $00e0,$0007,$00e2
  535. bit2:
  536. dc.w    $4178
  537. dc.w    $0182,$08f0
  538. waittab2:
  539. blk.w   1440,0
  540.   
  541. dc.w    $ffff,$fffe
  542. ;scrollm:
  543. dc.b " AND AGAIN SOME STUNNING FX FROM THE GRANDMASTER ICE-T !"
  544. end:
  545. even
  546. ;zeiger:
  547. dc.l    0
  548. oldclist:
  549. dc.l    0
  550. gfxbase:
  551. dc.l    0
  552. gfxname:
  553. dc.b    "graphics.library",0
  554. even
  555. blitcounter:
  556. dc.w    0
  557.  
  558. coleurs:
  559. dc.w $f00,$f10,$f20,$f30,$f40,$f50,$f60,$f70,$f80,$f90,$fa0,$fb0
  560. dc.w $fc0,$fd0,$fe0,$ff0,$ef0,$df0,$cf0,$bf0,$af0,$9f0,$8f0,$7f0
  561. dc.w $6f0,$5f0,$4f0,$3f0
  562. coleurs2:
  563. dc.w $2f0,$1f0,$0f0,$0f1,$0f2,$0f3,$0f4,$0f5
  564. dc.w $0f6,$0f7,$0f8,$0f9,$0fa,$0fb,$0fc,$0fd,$0fe,$0ff,$0ef,$0df
  565. dc.w $0cf,$0bf,$0af,$09f,$08f,$07f,$06f,$05f,$04f,$03f,$02f,$01f
  566. dc.w $00f,$10f,$20f,$30f,$40f,$50f,$60f,$70f,$80f
  567. dc.w $90f,$a0f,$b0f
  568. dc.w $c0f,$d0f,$e0f,$f0f,$f0e,$f0d,$f0c,$f0a,$f09,$f08,$f07,$f06
  569. dc.w $f05,$f04,$f03,$f02,$f01
  570.  
  571. dc.w $f00,$f10,$f20,$f30,$f40,$f50,$f60,$f70,$f80,$f90,$05f,$05d
  572. dc.w $05b,$059,$057,$055,$053,$051,$cf0,$bf0,$af0,$9f0,$8f0,$7f0
  573. dc.w $6f0,$5f0,$4f0,$3f0,$2f0,$fff,$0f0,$0f1,$0f2,$0f3,$0f4,$0f5
  574. dc.w $0f6,$0f7,$0f8,$0f9,$0fa,$0fb,$0fc,$0fd,$0fe,$0ff,$0ef,$0df
  575. dc.w $0cf,$0bf,$0af,$09f,$08f,$07f,$06f,$05f,$04f,$03f,$02f,$01f
  576. dc.w $00f,$10f,$20f,$fff,$40f,$50f,$60f,$70f,$80f,$90f,$a0f,$b0f
  577. dc.w $c0f,$d0f,$e0f,$f0f,$f0e,$f0d,$f0c,$f0a,$f09,$f08,$f07,$f06
  578. dc.w $f05,$f04,$f03,$f02,$f01
  579.  
  580.  
  581. letter_pointer:
  582. dc.l    letters2
  583.  
  584. reset:
  585. dc.l    letters2
  586.  
  587.  
  588.  
  589.  
  590. even
  591.  
  592. ; mover ! 
  593.  
  594.  
  595.  
  596. test2:
  597. dc.l $637f8
  598.  
  599.  
  600.  
  601. sinfac:
  602. dc.l    0
  603.  
  604. factor:
  605. dc.l    40
  606.  
  607. multi:
  608. sydat:
  609. dc.l    $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,
  610. dc.l    $00000000,$00000001,$00010001,$00010001,$00010002,$00020002,
  611. dc.l    $00020003,$00030003,$00030004,$00040004,$00050005,$00050006,
  612. dc.l    $00060006,$00070007,$00070008,$00080009,$00090009,$000A000A,
  613. dc.l    $000B000B,$000C000C,$000D000D,$000E000E,$000F000F,$00100010,
  614. dc.l    $00110012,$00120013,$00130014,$00150015,$00160016,$00170018,
  615. dc.l    $00180019,$001A001A,$001B001C,$001C001D,$001E001F,$001F0020,
  616. dc.l    $00210022,$00220023,$00240025,$00250026,$00270028,$00290029,
  617. dc.l    $002A002B,$002C002D,$002D002E,$002F0030,$00310032,$00330033,
  618. dc.l    $00340035,$00360037,$00380039,$003A003B,$003C003C,$003D003E,
  619. dc.l    $003F0040,$00410042,$00430044,$00450046,$00470048,$0049004A,
  620. dc.l    $004B004C,$004D004E,$004F0050,$00510052,$00530053,$00540055,
  621. dc.l    $00560057,$00580059,$005A005B,$005C005D,$005E005F,$00600061,
  622. dc.l    $00620063,$00640065,$00660067,$00680069,$006A006B,$006C006D,
  623. dc.l    $006E006F,$00700071,$00720073,$00740075,$00760077,$00780079,
  624. dc.l    $007A007B,$007C007D,$007E007F,$00800081,$00820083,$00840085,
  625. dc.l    $00860087,$00880089,$0089008A,$008B008C,$008D008E,$008F0090,
  626. dc.l    $00910092,$00920093,$00940095,$00960097,$00980099,$0099009A,
  627. dc.l    $009B009C,$009D009E,$009E009F,$00A000A1,$00A200A2,$00A300A4,
  628. dc.l    $00A500A5,$00A600A7,$00A800A8,$00A900AA,$00AA00AB,$00AC00AD,
  629. dc.l    $00AD00AE,$00AF00AF,$00B000B1,$00B100B2,$00B200B3,$00B400B4,
  630. dc.l    $00B500B5,$00B600B7,$00B700B8,$00B800B9,$00B900BA,$00BA00BB,
  631. dc.l    $00BB00BC,$00BC00BD,$00BD00BD,$00BE00BE,$00BF00BF,$00C000C0,
  632. dc.l    $00C000C1,$00C100C1,$00C200C2,$00C200C3,$00C300C3,$00C400C4,
  633. dc.l    $00C400C4,$00C500C5,$00C500C5,$00C500C6,$00C600C6,$00C600C6,
  634. dc.l    $00C600C7,$00C700C7,$00C700C7,$00C700C7,$00C700C7,$00C700C7,
  635. dc.l    $00C700C7,$00C700C7,$00C700C7,$00C700C7,$00C700C7,$00C700C7,
  636. dc.l    $00C700C7,$00C700C7,$00C700C6,$00C600C6,$00C600C6,$00C600C5,
  637. dc.l    $00C500C5,$00C500C4,$00C400C4,$00C400C3,$00C300C3,$00C200C2,
  638. dc.l    $00C200C1,$00C100C1,$00C000C0,$00C000BF,$00BF00BE,$00BE00BE,
  639. dc.l    $00BD00BD,$00BC00BC,$00BB00BB,$00BA00BA,$00B900B9,$00B800B8,
  640. dc.l    $00B700B7,$00B600B6,$00B500B4,$00B400B3,$00B300B2,$00B100B1,
  641. dc.l    $00B000AF,$00AF00AE,$00AD00AD,$00AC00AB,$00AB00AA,$00A900A9,
  642. dc.l    $00A800A7,$00A600A6,$00A500A4,$00A300A3,$00A200A1,$00A0009F,
  643. dc.l    $009F009E,$009D009C,$009B009B,$009A0099,$00980097,$00960095,
  644. dc.l    $00950094,$00930092,$00910090,$008F008E,$008D008C,$008C008B,
  645. dc.l    $008A0089,$00880087,$00860085,$00840083,$00820081,$0080007F,
  646. dc.l    $007E007D,$007C007C,$007B007A,$00790078,$00770076,$00750074,
  647. dc.l    $00730072,$00710070,$006F006E,$006D006C,$006B006A,$00690068,
  648. dc.l    $00670066,$00650064,$00630062,$00610060,$005F005E,$005D005C,
  649. dc.l    $005B005A,$00590058,$00570056,$00550054,$00530052,$00510050,
  650. dc.l    $004F004E,$004D004C,$004B004A,$00490048,$00470046,$00450044,
  651. dc.l    $00430042,$00410040,$0040003F,$003E003D,$003C003B,$003A0039,
  652. dc.l    $00380037,$00360036,$00350034,$00330032,$00310030,$002F002F,
  653. dc.l    $002E002D,$002C002B,$002A002A,$00290028,$00270026,$00260025,
  654. dc.l    $00240023,$00220022,$00210020,$0020001F,$001E001D,$001D001C,
  655. dc.l    $001B001B,$001A0019,$00190018,$00170017,$00160015,$00150014,
  656. dc.l    $00130013,$00120012,$00110011,$0010000F,$000F000E,$000E000D,
  657. dc.l    $000D000C,$000C000B,$000B000A,$000A000A,$00090009,$00080008,
  658. dc.l    $00080007,$00070006,$00060006,$00050005,$00050004,$00040004,
  659. dc.l    $00030003,$00030003,$00020002,$00020002,$00020001,$00010001,
  660. dc.l    $00010001,$00010000,$00000000,$00000000,$00000000,$00000000,
  661. dc.l    $00000000,$00000000
  662. dc.w    $0000
  663. dc.l    $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,
  664. dc.l    $00000000,$00000001,$00010001,$00010001,$00010002,$00020002,
  665. dc.l    $00020003,$00030003,$00030004,$00040004,$00050005,$00050006,
  666. dc.l    $00060006,$00070007,$00070008,$00080009,$00090009,$000A000A,
  667. dc.l    $000B000B,$000C000C,$000D000D,$000E000E,$000F000F,$00100010,
  668. dc.l    $00110012,$00120013,$00130014,$00150015,$00160016,$00170018,
  669. dc.l    $00180019,$001A001A,$001B001C,$001C001D,$001E001F,$001F0020,
  670. dc.l    $00210022,$00220023,$00240025,$00250026,$00270028,$00290029,
  671. dc.l    $002A002B,$002C002D,$002D002E,$002F0030,$00310032,$00330033,
  672. dc.l    $00340035,$00360037,$00380039,$003A003B,$003C003C,$003D003E,
  673. dc.l    $003F0040,$00410042,$00430044,$00450046,$00470048,$0049004A,
  674. dc.l    $004B004C,$004D004E,$004F0050,$00510052,$00530053,$00540055,
  675. dc.l    $00560057,$00580059,$005A005B,$005C005D,$005E005F,$00600061,
  676. dc.l    $00620063,$00640065,$00660067,$00680069,$006A006B,$006C006D,
  677. dc.l    $006E006F,$00700071,$00720073,$00740075,$00760077,$00780079,
  678. dc.l    $007A007B,$007C007D,$007E007F,$00800081,$00820083,$00840085,
  679. dc.l    $00860087,$00880089,$0089008A,$008B008C,$008D008E,$008F0090,
  680. dc.l    $00910092,$00920093,$00940095,$00960097,$00980099,$0099009A,
  681. dc.l    $009B009C,$009D009E,$009E009F,$00A000A1,$00A200A2,$00A300A4,
  682. dc.l    $00A500A5,$00A600A7,$00A800A8,$00A900AA,$00AA00AB,$00AC00AD,
  683. dc.l    $00AD00AE,$00AF00AF,$00B000B1,$00B100B2,$00B200B3,$00B400B4,
  684. dc.l    $00B500B5,$00B600B7,$00B700B8,$00B800B9,$00B900BA,$00BA00BB,
  685. dc.l    $00BB00BC,$00BC00BD,$00BD00BD,$00BE00BE,$00BF00BF,$00C000C0,
  686. dc.l    $00C000C1,$00C100C1,$00C200C2,$00C200C3,$00C300C3,$00C400C4,
  687. dc.l    $00C400C4,$00C500C5,$00C500C5,$00C500C6,$00C600C6,$00C600C6,
  688. dc.l    $00C600C7,$00C700C7,$00C700C7,$00C700C7,$00C700C7,$00C700C7,
  689. dc.l    $00C700C7,$00C700C7,$00C700C7,$00C700C7,$00C700C7,$00C700C7,
  690. dc.l    $00C700C7,$00C700C7,$00C700C6,$00C600C6,$00C600C6,$00C600C5,
  691. dc.l    $00C500C5,$00C500C4,$00C400C4,$00C400C3,$00C300C3,$00C200C2,
  692. dc.l    $00C200C1,$00C100C1,$00C000C0,$00C000BF,$00BF00BE,$00BE00BE,
  693. dc.l    $00BD00BD,$00BC00BC,$00BB00BB,$00BA00BA,$00B900B9,$00B800B8,
  694. dc.l    $00B700B7,$00B600B6,$00B500B4,$00B400B3,$00B300B2,$00B100B1,
  695. dc.l    $00B000AF,$00AF00AE,$00AD00AD,$00AC00AB,$00AB00AA,$00A900A9,
  696. dc.l    $00A800A7,$00A600A6,$00A500A4,$00A300A3,$00A200A1,$00A0009F,
  697. dc.l    $009F009E,$009D009C,$009B009B,$009A0099,$00980097,$00960095,
  698. dc.l    $00950094,$00930092,$00910090,$008F008E,$008D008C,$008C008B,
  699. dc.l    $008A0089,$00880087,$00860085,$00840083,$00820081,$0080007F,
  700. dc.l    $007E007D,$007C007C,$007B007A,$00790078,$00770076,$00750074,
  701. dc.l    $00730072,$00710070,$006F006E,$006D006C,$006B006A,$00690068,
  702. dc.l    $00670066,$00650064,$00630062,$00610060,$005F005E,$005D005C,
  703. dc.l    $005B005A,$00590058,$00570056,$00550054,$00530052,$00510050,
  704. dc.l    $004F004E,$004D004C,$004B004A,$00490048,$00470046,$00450044,
  705. dc.l    $00430042,$00410040,$0040003F,$003E003D,$003C003B,$003A0039,
  706. dc.l    $00380037,$00360036,$00350034,$00330032,$00310030,$002F002F,
  707. dc.l    $002E002D,$002C002B,$002A002A,$00290028,$00270026,$00260025,
  708. dc.l    $00240023,$00220022,$00210020,$0020001F,$001E001D,$001D001C,
  709. dc.l    $001B001B,$001A0019,$00190018,$00170017,$00160015,$00150014,
  710. dc.l    $00130013,$00120012,$00110011,$0010000F,$000F000E,$000E000D,
  711. dc.l    $000D000C,$000C000B,$000B000A,$000A000A,$00090009,$00080008,
  712. dc.l    $00080007,$00070006,$00060006,$00050005,$00050004,$00040004,
  713. dc.l    $00030003,$00030003,$00020002,$00020002,$00020001,$00010001,
  714. dc.l    $00010001,$00010000,$00000000,$00000000,$00000000,$00000000,
  715. dc.l    $00000000,$00000000
  716. dc.w    $0000
  717. syend:    
  718. dc.l    $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,
  719. dc.l    $00000000,$00000001,$00010001,$00010001,$00010002,$00020002,
  720. dc.l    $00020003,$00030003,$00030004,$00040004,$00050005,$00050006,
  721. dc.l    $00060006,$00070007,$00070008,$00080009,$00090009,$000A000A,
  722. dc.l    $000B000B,$000C000C,$000D000D,$000E000E,$000F000F,$00100010,
  723. dc.l    $00110012,$00120013,$00130014,$00150015,$00160016,$00170018,
  724. dc.l    $00180019,$001A001A,$001B001C,$001C001D,$001E001F,$001F0020,
  725. dc.l    $00210022,$00220023,$00240025,$00250026,$00270028,$00290029,
  726. dc.l    $002A002B,$002C002D,$002D002E,$002F0030,$00310032,$00330033,
  727. dc.l    $00340035,$00360037,$00380039,$003A003B,$003C003C,$003D003E,
  728. dc.l    $003F0040,$00410042,$00430044,$00450046,$00470048,$0049004A,
  729. dc.l    $004B004C,$004D004E,$004F0050,$00510052,$00530053,$00540055,
  730. dc.l    $00560057,$00580059,$005A005B,$005C005D,$005E005F,$00600061,
  731. dc.l    $00620063,$00640065,$00660067,$00680069,$006A006B,$006C006D,
  732. dc.l    $006E006F,$00700071,$00720073,$00740075,$00760077,$00780079,
  733. dc.l    $007A007B,$007C007D,$007E007F,$00800081,$00820083,$00840085,
  734. dc.l    $00860087,$00880089,$0089008A,$008B008C,$008D008E,$008F0090,
  735. dc.l    $00910092,$00920093,$00940095,$00960097,$00980099,$0099009A,
  736. dc.l    $009B009C,$009D009E,$009E009F,$00A000A1,$00A200A2,$00A300A4,
  737. dc.l    $00A500A5,$00A600A7,$00A800A8,$00A900AA,$00AA00AB,$00AC00AD,
  738. dc.l    $00AD00AE,$00AF00AF,$00B000B1,$00B100B2,$00B200B3,$00B400B4,
  739. dc.l    $00B500B5,$00B600B7,$00B700B8,$00B800B9,$00B900BA,$00BA00BB,
  740. dc.l    $00BB00BC,$00BC00BD,$00BD00BD,$00BE00BE,$00BF00BF,$00C000C0,
  741. dc.l    $00C000C1,$00C100C1,$00C200C2,$00C200C3,$00C300C3,$00C400C4,
  742. dc.l    $00C400C4,$00C500C5,$00C500C5,$00C500C6,$00C600C6,$00C600C6,
  743. dc.l    $00C600C7,$00C700C7,$00C700C7,$00C700C7,$00C700C7,$00C700C7,
  744. dc.l    $00C700C7,$00C700C7,$00C700C7,$00C700C7,$00C700C7,$00C700C7,
  745. dc.l    $00C700C7,$00C700C7,$00C700C6,$00C600C6,$00C600C6,$00C600C5,
  746. dc.l    $00C500C5,$00C500C4,$00C400C4,$00C400C3,$00C300C3,$00C200C2,
  747. dc.l    $00C200C1,$00C100C1,$00C000C0,$00C000BF,$00BF00BE,$00BE00BE,
  748. dc.l    $00BD00BD,$00BC00BC,$00BB00BB,$00BA00BA,$00B900B9,$00B800B8,
  749. dc.l    $00B700B7,$00B600B6,$00B500B4,$00B400B3,$00B300B2,$00B100B1,
  750. dc.l    $00B000AF,$00AF00AE,$00AD00AD,$00AC00AB,$00AB00AA,$00A900A9,
  751. dc.l    $00A800A7,$00A600A6,$00A500A4,$00A300A3,$00A200A1,$00A0009F,
  752. dc.l    $009F009E,$009D009C,$009B009B,$009A0099,$00980097,$00960095,
  753. dc.l    $00950094,$00930092,$00910090,$008F008E,$008D008C,$008C008B,
  754. dc.l    $008A0089,$00880087,$00860085,$00840083,$00820081,$0080007F,
  755. dc.l    $007E007D,$007C007C,$007B007A,$00790078,$00770076,$00750074,
  756. dc.l    $00730072,$00710070,$006F006E,$006D006C,$006B006A,$00690068,
  757. dc.l    $00670066,$00650064,$00630062,$00610060,$005F005E,$005D005C,
  758. dc.l    $005B005A,$00590058,$00570056,$00550054,$00530052,$00510050,
  759. dc.l    $004F004E,$004D004C,$004B004A,$00490048,$00470046,$00450044,
  760. dc.l    $00430042,$00410040,$0040003F,$003E003D,$003C003B,$003A0039,
  761. dc.l    $00380037,$00360036,$00350034,$00330032,$00310030,$002F002F,
  762. dc.l    $002E002D,$002C002B,$002A002A,$00290028,$00270026,$00260025,
  763. dc.l    $00240023,$00220022,$00210020,$0020001F,$001E001D,$001D001C,
  764. dc.l    $001B001B,$001A0019,$00190018,$00170017,$00160015,$00150014,
  765. dc.l    $00130013,$00120012,$00110011,$0010000F,$000F000E,$000E000D,
  766. dc.l    $000D000C,$000C000B,$000B000A,$000A000A,$00090009,$00080008,
  767. dc.l    $00080007,$00070006,$00060006,$00050005,$00050004,$00040004,
  768. dc.l    $00030003,$00030003,$00020002,$00020002,$00020001,$00010001,
  769. dc.l    $00010001,$00010000,$00000000,$00000000,$00000000,$00000000,
  770. dc.l    $00000000,$00000000
  771. dc.w    $0000
  772.  
  773. sinustabend:
  774. dc.l    $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,
  775. dc.l    $00000000,$00000001,$00010001,$00010001,$00010002,$00020002,
  776. dc.l    $00020003,$00030003,$00030004,$00040004,$00050005,$00050006,
  777. dc.l    $00060006,$00070007,$00070008,$00080009,$00090009,$000A000A,
  778. dc.l    $000B000B,$000C000C,$000D000D,$000E000E,$000F000F,$00100010,
  779. dc.l    $00110012,$00120013,$00130014,$00150015,$00160016,$00170018,
  780. dc.l    $00180019,$001A001A,$001B001C,$001C001D,$001E001F,$001F0020,
  781. dc.l    $00210022,$00220023,$00240025,$00250026,$00270028,$00290029,
  782. dc.l    $002A002B,$002C002D,$002D002E,$002F0030,$00310032,$00330033,
  783. dc.l    $00340035,$00360037,$00380039,$003A003B,$003C003C,$003D003E,
  784. dc.l    $003F0040,$00410042,$00430044,$00450046,$00470048,$0049004A,
  785. dc.l    $004B004C,$004D004E,$004F0050,$00510052,$00530053,$00540055,
  786. dc.l    $00560057,$00580059,$005A005B,$005C005D,$005E005F,$00600061,
  787. dc.l    $00620063,$00640065,$00660067,$00680069,$006A006B,$006C006D,
  788. dc.l    $006E006F,$00700071,$00720073,$00740075,$00760077,$00780079,
  789. dc.l    $007A007B,$007C007D,$007E007F,$00800081,$00820083,$00840085,
  790. dc.l    $00860087,$00880089,$0089008A,$008B008C,$008D008E,$008F0090,
  791. dc.l    $00910092,$00920093,$00940095,$00960097,$00980099,$0099009A,
  792. dc.l    $009B009C,$009D009E,$009E009F,$00A000A1,$00A200A2,$00A300A4,
  793. dc.l    $00A500A5,$00A600A7,$00A800A8,$00A900AA,$00AA00AB,$00AC00AD,
  794. dc.l    $00AD00AE,$00AF00AF,$00B000B1,$00B100B2,$00B200B3,$00B400B4,
  795. dc.l    $00B500B5,$00B600B7,$00B700B8,$00B800B9,$00B900BA,$00BA00BB,
  796. dc.l    $00BB00BC,$00BC00BD,$00BD00BD,$00BE00BE,$00BF00BF,$00C000C0,
  797. dc.l    $00C000C1,$00C100C1,$00C200C2,$00C200C3,$00C300C3,$00C400C4,
  798. dc.l    $00C400C4,$00C500C5,$00C500C5,$00C500C6,$00C600C6,$00C600C6,
  799. dc.l    $00C600C7,$00C700C7,$00C700C7,$00C700C7,$00C700C7,$00C700C7,
  800. dc.l    $00C700C7,$00C700C7,$00C700C7,$00C700C7,$00C700C7,$00C700C7,
  801. dc.l    $00C700C7,$00C700C7,$00C700C6,$00C600C6,$00C600C6,$00C600C5,
  802. dc.l    $00C500C5,$00C500C4,$00C400C4,$00C400C3,$00C300C3,$00C200C2,
  803. dc.l    $00C200C1,$00C100C1,$00C000C0,$00C000BF,$00BF00BE,$00BE00BE,
  804. dc.l    $00BD00BD,$00BC00BC,$00BB00BB,$00BA00BA,$00B900B9,$00B800B8,
  805. dc.l    $00B700B7,$00B600B6,$00B500B4,$00B400B3,$00B300B2,$00B100B1,
  806. dc.l    $00B000AF,$00AF00AE,$00AD00AD,$00AC00AB,$00AB00AA,$00A900A9,
  807. dc.l    $00A800A7,$00A600A6,$00A500A4,$00A300A3,$00A200A1,$00A0009F,
  808. dc.l    $009F009E,$009D009C,$009B009B,$009A0099,$00980097,$00960095,
  809. dc.l    $00950094,$00930092,$00910090,$008F008E,$008D008C,$008C008B,
  810. dc.l    $008A0089,$00880087,$00860085,$00840083,$00820081,$0080007F,
  811. dc.l    $007E007D,$007C007C,$007B007A,$00790078,$00770076,$00750074,
  812. dc.l    $00730072,$00710070,$006F006E,$006D006C,$006B006A,$00690068,
  813. dc.l    $00670066,$00650064,$00630062,$00610060,$005F005E,$005D005C,
  814. dc.l    $005B005A,$00590058,$00570056,$00550054,$00530052,$00510050,
  815. dc.l    $004F004E,$004D004C,$004B004A,$00490048,$00470046,$00450044,
  816. dc.l    $00430042,$00410040,$0040003F,$003E003D,$003C003B,$003A0039,
  817. dc.l    $00380037,$00360036,$00350034,$00330032,$00310030,$002F002F,
  818. dc.l    $002E002D,$002C002B,$002A002A,$00290028,$00270026,$00260025,
  819. dc.l    $00240023,$00220022,$00210020,$0020001F,$001E001D,$001D001C,
  820. dc.l    $001B001B,$001A0019,$00190018,$00170017,$00160015,$00150014,
  821. dc.l    $00130013,$00120012,$00110011,$0010000F,$000F000E,$000E000D,
  822. dc.l    $000D000C,$000C000B,$000B000A,$000A000A,$00090009,$00080008,
  823. dc.l    $00080007,$00070006,$00060006,$00050005,$00050004,$00040004,
  824. dc.l    $00030003,$00030003,$00020002,$00020002,$00020001,$00010001,
  825. dc.l    $00010001,$00010000,$00000000,$00000000,$00000000,$00000000,
  826. dc.l    $00000000,$00000000
  827. dc.w    $0000
  828.  
  829. dc.l    $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,
  830. dc.l    $00000000,$00000001,$00010001,$00010001,$00010002,$00020002,
  831. dc.l    $00020003,$00030003,$00030004,$00040004,$00050005,$00050006,
  832. dc.l    $00060006,$00070007,$00070008,$00080009,$00090009,$000A000A,
  833. dc.l    $000B000B,$000C000C,$000D000D,$000E000E,$000F000F,$00100010,
  834. dc.l    $00110012,$00120013,$00130014,$00150015,$00160016,$00170018,
  835. dc.l    $00180019,$001A001A,$001B001C,$001C001D,$001E001F,$001F0020,
  836. dc.l    $00210022,$00220023,$00240025,$00250026,$00270028,$00290029,
  837. dc.l    $002A002B,$002C002D,$002D002E,$002F0030,$00310032,$00330033,
  838. dc.l    $00340035,$00360037,$00380039,$003A003B,$003C003C,$003D003E,
  839. dc.l    $003F0040,$00410042,$00430044,$00450046,$00470048,$0049004A,
  840. dc.l    $004B004C,$004D004E,$004F0050,$00510052,$00530053,$00540055,
  841. dc.l    $00560057,$00580059,$005A005B,$005C005D,$005E005F,$00600061,
  842. dc.l    $00620063,$00640065,$00660067,$00680069,$006A006B,$006C006D,
  843. dc.l    $006E006F,$00700071,$00720073,$00740075,$00760077,$00780079,
  844. dc.l    $007A007B,$007C007D,$007E007F,$00800081,$00820083,$00840085,
  845. dc.l    $00860087,$00880089,$0089008A,$008B008C,$008D008E,$008F0090,
  846. dc.l    $00910092,$00920093,$00940095,$00960097,$00980099,$0099009A,
  847. dc.l    $009B009C,$009D009E,$009E009F,$00A000A1,$00A200A2,$00A300A4,
  848. dc.l    $00A500A5,$00A600A7,$00A800A8,$00A900AA,$00AA00AB,$00AC00AD,
  849. dc.l    $00AD00AE,$00AF00AF,$00B000B1,$00B100B2,$00B200B3,$00B400B4,
  850. dc.l    $00B500B5,$00B600B7,$00B700B8,$00B800B9,$00B900BA,$00BA00BB,
  851. dc.l    $00BB00BC,$00BC00BD,$00BD00BD,$00BE00BE,$00BF00BF,$00C000C0,
  852. dc.l    $00C000C1,$00C100C1,$00C200C2,$00C200C3,$00C300C3,$00C400C4,
  853. dc.l    $00C400C4,$00C500C5,$00C500C5,$00C500C6,$00C600C6,$00C600C6,
  854. dc.l    $00C600C7,$00C700C7,$00C700C7,$00C700C7,$00C700C7,$00C700C7,
  855. dc.l    $00C700C7,$00C700C7,$00C700C7,$00C700C7,$00C700C7,$00C700C7,
  856. dc.l    $00C700C7,$00C700C7,$00C700C6,$00C600C6,$00C600C6,$00C600C5,
  857. dc.l    $00C500C5,$00C500C4,$00C400C4,$00C400C3,$00C300C3,$00C200C2,
  858. dc.l    $00C200C1,$00C100C1,$00C000C0,$00C000BF,$00BF00BE,$00BE00BE,
  859. dc.l    $00BD00BD,$00BC00BC,$00BB00BB,$00BA00BA,$00B900B9,$00B800B8,
  860. dc.l    $00B700B7,$00B600B6,$00B500B4,$00B400B3,$00B300B2,$00B100B1,
  861. dc.l    $00B000AF,$00AF00AE,$00AD00AD,$00AC00AB,$00AB00AA,$00A900A9,
  862. dc.l    $00A800A7,$00A600A6,$00A500A4,$00A300A3,$00A200A1,$00A0009F,
  863. dc.l    $009F009E,$009D009C,$009B009B,$009A0099,$00980097,$00960095,
  864. dc.l    $00950094,$00930092,$00910090,$008F008E,$008D008C,$008C008B,
  865. dc.l    $008A0089,$00880087,$00860085,$00840083,$00820081,$0080007F,
  866. dc.l    $007E007D,$007C007C,$007B007A,$00790078,$00770076,$00750074,
  867. dc.l    $00730072,$00710070,$006F006E,$006D006C,$006B006A,$00690068,
  868. dc.l    $00670066,$00650064,$00630062,$00610060,$005F005E,$005D005C,
  869. dc.l    $005B005A,$00590058,$00570056,$00550054,$00530052,$00510050,
  870. dc.l    $004F004E,$004D004C,$004B004A,$00490048,$00470046,$00450044,
  871. dc.l    $00430042,$00410040,$0040003F,$003E003D,$003C003B,$003A0039,
  872. dc.l    $00380037,$00360036,$00350034,$00330032,$00310030,$002F002F,
  873. dc.l    $002E002D,$002C002B,$002A002A,$00290028,$00270026,$00260025,
  874. dc.l    $00240023,$00220022,$00210020,$0020001F,$001E001D,$001D001C,
  875. dc.l    $001B001B,$001A0019,$00190018,$00170017,$00160015,$00150014,
  876. dc.l    $00130013,$00120012,$00110011,$0010000F,$000F000E,$000E000D,
  877. dc.l    $000D000C,$000C000B,$000B000A,$000A000A,$00090009,$00080008,
  878. dc.l    $00080007,$00070006,$00060006,$00050005,$00050004,$00040004,
  879. dc.l    $00030003,$00030003,$00020002,$00020002,$00020001,$00010001,
  880. dc.l    $00010001,$00010000,$00000000,$00000000,$00000000,$00000000,
  881. dc.l    $00000000,$00000000
  882. dc.w    $0000
  883. abs_end:
  884. even
  885.  
  886. start_muzak:
  887.     move.l    #data,muzakoffset    ;** get offset
  888.  
  889. init0:    move.l    muzakoffset,a0        ;** get highest used pattern
  890.     add.l    #472,a0
  891.     move.l    #$80,d0
  892.     clr.l    d1
  893. init1:    move.l    d1,d2
  894.     subq.w    #1,d0
  895. init2:    move.b    (a0)+,d1
  896.     cmp.b    d2,d1
  897.     bgt.s    init1
  898.     dbf    d0,init2
  899.     addq.b    #1,d2
  900.  
  901. init3:    move.l    muzakoffset,a0        ;** calc samplepointers
  902.     lea    pointers(pc),a1
  903.     lsl.l    #8,d2
  904.     lsl.l    #2,d2
  905.     add.l    #600,d2
  906.     add.l    a0,d2
  907.     moveq    #14,d0
  908. init4:    move.l    d2,(a1)+
  909.     clr.l    d1
  910.     move.w    42(a0),d1
  911.     lsl.l    #1,d1
  912.     add.l    d1,d2
  913.     add.l    #30,a0
  914.     dbf    d0,init4
  915.  
  916. init5:    clr.w    $dff0a8            ;** clear used values
  917.     clr.w    $dff0b8
  918.     clr.w    $dff0c8
  919.     clr.w    $dff0d8
  920.     clr.w    timpos
  921.     clr.l    trkpos
  922.     clr.l    patpos
  923.  
  924. init6:    move.l    muzakoffset,a0        ;** initialize timer irq
  925.     move.b    470(a0),numpat+1    ;number of patterns
  926. ;    move.l    $6c.w,lev3save+2
  927. ;    move.l    #lev3interrupt,$6c.w
  928.     rts
  929.  
  930. stop_muzak:
  931. ;    move.l    lev3save+2,$6c.w
  932.     clr.w    $dff0a8
  933.     clr.w    $dff0b8
  934.     clr.w    $dff0c8
  935.     clr.w    $dff0d8
  936.     move.w    #$f,$dff096
  937.     rts
  938.  
  939. replay_muzak:
  940.     movem.l    d0-d7/a0-a6,-(a7)
  941.     addq.w    #1,timpos
  942. speed:    cmp.w    #6,timpos
  943.     beq.L    replaystep
  944.  
  945. chaneleffects:                ;** seek effects
  946.     lea    datach0(pc),a6
  947.     tst.b    3(a6)
  948.     beq.s    ceff1
  949.     lea    $dff0a0,a5
  950.     bsr.s    ceff5
  951. ceff1:    lea    datach1(pc),a6
  952.     tst.b    3(a6)
  953.     beq.s    ceff2
  954.     lea    $dff0b0,a5
  955.     bsr.s    ceff5
  956. ceff2:    lea    datach2(pc),a6
  957.     tst.b    3(a6)
  958.     beq.s    ceff3
  959.     lea    $dff0c0,a5
  960.     bsr.s    ceff5
  961. ceff3:    lea    datach3(pc),a6
  962.     tst.b    3(a6)
  963.     beq.s    ceff4
  964.     lea    $dff0d0,a5
  965.     bsr.s    ceff5
  966. ceff4:    movem.l    (a7)+,d0-d7/a0-a6
  967.     rts
  968.  
  969. ceff5:    move.b    2(a6),d0        ;room for some more
  970.     and.b    #$f,d0            ;implementations below
  971.     tst.b    d0
  972.     beq.s    arpreggiato
  973.     cmp.b    #1,d0
  974.     beq.L    pitchup
  975.     cmp.b    #2,d0
  976.     beq.L    pitchdown
  977.     cmp.b    #12,d0
  978.     beq.L    setvol
  979.     cmp.b    #14,d0
  980.     beq.L    setfilt
  981.     cmp.b    #15,d0
  982.     beq.L    setspeed
  983.     rts
  984.  
  985. arpreggiato:                ;** spread by time
  986.     cmp.w    #1,timpos
  987.     beq.s    arp1
  988.     cmp.w    #2,timpos
  989.     beq.s    arp2
  990.     cmp.w    #3,timpos
  991.     beq.s    arp3
  992.     cmp.w    #4,timpos
  993.     beq.s    arp1
  994.     cmp.w    #5,timpos
  995.     beq.s    arp2
  996.     rts
  997.  
  998. arp1:    clr.l    d0            ;** get higher note-values
  999.     move.b    3(a6),d0        ;   or play original
  1000.     lsr.b    #4,d0
  1001.     bra.s    arp4
  1002. arp2:    clr.l    d0
  1003.     move.b    3(a6),d0
  1004.     and.b    #$f,d0
  1005.     bra.s    arp4
  1006. arp3:    move.w    16(a6),d2
  1007.     bra.s    arp6
  1008. arp4:    lsl.w    #1,d0
  1009.     clr.l    d1
  1010.     move.w    16(a6),d1
  1011.     lea    notetable,a0
  1012. arp5:    move.w    (a0,d0.w),d2
  1013.     cmp.w    (a0),d1
  1014.     beq.s    arp6
  1015.     addq.l    #2,a0
  1016.     bra.s    arp5
  1017. arp6:    move.w    d2,6(a5)
  1018.     rts
  1019.  
  1020. pitchdown:
  1021.     bsr.s    newrou
  1022.     clr.l    d0
  1023.     move.b    3(a6),d0
  1024.     and.b    #$f,d0
  1025.     add.w    d0,(a4)
  1026.     cmp.w    #$358,(a4)
  1027.     bmi.s    ok1
  1028.     move.w    #$358,(a4)
  1029. ok1:    move.w    (a4),6(a5)
  1030.     rts
  1031.  
  1032. pitchup:bsr.s    newrou
  1033.     clr.l    d0
  1034.     move.b    3(a6),d0
  1035.     and.b    #$f,d0
  1036.     sub.w    d0,(a4)
  1037.     cmp.w    #$71,(a4)
  1038.     bpl.s    ok2
  1039.     move.w    #$71,(a4)
  1040. ok2:    move.w    (a4),6(a5)
  1041.     rts
  1042.  
  1043. setvol:    move.b    3(a6),8(a5)
  1044.     rts
  1045.  
  1046. setfilt:move.b    3(a6),d0
  1047.     and.b    #1,d0
  1048.     lsl.b    #1,d0
  1049.     and.b    #$fd,$bfe001
  1050.     or.b    d0,$bfe001
  1051.     rts
  1052.  
  1053. setspeed:
  1054.     clr.l    d0
  1055.     move.b    3(a6),d0
  1056.     and.b    #$f,d0
  1057.     move.w    d0,speed+2
  1058.     rts
  1059.  
  1060. newrou:    cmp.l    #datach0,a6
  1061.     bne.s    next1
  1062.     lea    voi1(pc),a4
  1063.     rts
  1064. next1:    cmp.l    #datach1,a6
  1065.     bne.s    next2
  1066.     lea    voi2(pc),a4
  1067.     rts
  1068. next2:    cmp.l    #datach2,a6
  1069.     bne.s    next3
  1070.     lea    voi3(pc),a4
  1071.     rts
  1072. next3:    lea    voi4(pc),a4
  1073.     rts
  1074.  
  1075. replaystep:                ;** work next pattern-step
  1076.     clr.w    timpos
  1077.     move.l    muzakoffset,a0
  1078.     move.l    a0,a3
  1079.     add.l    #12,a3            ;ptr to soundprefs
  1080.     move.l    a0,a2
  1081.     add.l    #472,a2            ;ptr to pattern-table
  1082.     add.l    #600,a0            ;ptr to first pattern
  1083.     clr.l    d1
  1084.     move.l    trkpos,d0        ;get ptr to current pattern
  1085.     move.b    (a2,d0),d1
  1086.     lsl.l    #8,d1
  1087.     lsl.l    #2,d1
  1088.     add.l    patpos,d1        ;get ptr to current step
  1089.     clr.w    enbits
  1090.     lea    $dff0a0,a5        ;chanel 0
  1091.     lea    datach0(pc),a6
  1092.     bsr.L    chanelhandler
  1093.     lea    $dff0b0,a5        ;chanel 1
  1094.     lea    datach1(pc),a6
  1095.     bsr.L    chanelhandler
  1096.     lea    $dff0c0,a5        ;chanel 2
  1097.     lea    datach2(pc),a6
  1098.     bsr.L    chanelhandler
  1099.     lea    $dff0d0,a5        ;chanel 3
  1100.     lea    datach3(pc),a6
  1101.     bsr.L    chanelhandler
  1102.     move.w    #400,d0            ;** wait a while and set len
  1103. rep1:    dbf    d0,rep1            ;   of oneshot to 1 word
  1104.     move.w    #$8000,d0
  1105.     or.w    enbits,d0
  1106.     move.w    d0,$dff096
  1107.     cmp.w    #1,datach0+14
  1108.     bne.s    rep2
  1109.     clr.w    datach0+14
  1110.     move.w    #1,$dff0a4
  1111. rep2:    cmp.w    #1,datach1+14
  1112.     bne.s    rep3
  1113.     clr.w    datach1+14
  1114.     move.w    #1,$dff0b4
  1115. rep3:    cmp.w    #1,datach2+14
  1116.     bne.s    rep4
  1117.     clr.w    datach2+14
  1118.     move.w    #1,$dff0c4
  1119. rep4:    cmp.w    #1,datach3+14
  1120.     bne.s    rep5
  1121.     clr.w    datach3+14
  1122.     move.w    #1,$dff0d4
  1123.  
  1124. rep5:    add.l    #16,patpos        ;next step
  1125.     cmp.l    #64*16,patpos        ;pattern finished ?
  1126.     bne.s    rep6
  1127.     clr.l    patpos
  1128.     addq.l    #1,trkpos        ;next pattern in table
  1129.     clr.l    d0
  1130.     move.w    numpat,d0
  1131.     cmp.l    trkpos,d0        ;song finished ?
  1132.     bne.s    rep6
  1133.     clr.l    trkpos
  1134. rep6:    movem.l    (a7)+,d0-d7/a0-a6
  1135.     rts
  1136.  
  1137. chanelhandler:
  1138.     move.l    (a0,d1.l),(a6)        ;get period & action-word
  1139.     addq.l    #4,d1            ;point to next chanel
  1140.     clr.l    d2
  1141.     move.b    2(a6),d2        ;get nibble for soundnumber
  1142.     lsr.b    #4,d2
  1143.     beq.s    chan2            ;no soundchange !
  1144.     move.l    d2,d4            ;** calc ptr to sample
  1145.     lsl.l    #2,d2
  1146.     mulu    #30,d4
  1147.     lea    pointers-4(pc),a1
  1148.     move.l    (a1,d2.l),4(a6)        ;store sample-address
  1149.     move.w    (a3,d4.l),8(a6)        ;store sample-len in words
  1150.     move.w    2(a3,d4.l),18(a6)    ;store sample-volume
  1151.  
  1152.     move.l    d0,-(a7)
  1153.     move.b    2(a6),d0
  1154.     and.b    #$f,d0
  1155.     cmp.b    #$c,d0
  1156.     bne.s    ok3
  1157.     move.b    3(a6),8(a5)
  1158.     bra.s    ok4
  1159. ok3:    move.w    2(a3,d4.l),8(a5)    ;change chanel-volume
  1160. ok4:    move.l    (a7)+,d0
  1161.  
  1162.     clr.l    d3
  1163.     move.w    4(a3,d4),d3        ;** calc repeatstart
  1164.     add.l    4(a6),d3
  1165.     move.l    d3,10(a6)        ;store repeatstart
  1166.     move.w    6(a3,d4),14(a6)        ;store repeatlength
  1167.     cmp.w    #1,14(a6)
  1168.     beq.s    chan2            ;no sustainsound !
  1169.     move.l    10(a6),4(a6)        ;repstart  = sndstart
  1170.     move.w    6(a3,d4),8(a6)        ;replength = sndlength
  1171. chan2:    tst.w    (a6)
  1172.     beq.s    chan4            ;no new note set !
  1173.     move.w    22(a6),$dff096        ;clear dma
  1174.     tst.w    14(a6)
  1175.     bne.s    chan3            ;no oneshot-sample
  1176.     move.w    #1,14(a6)        ;allow resume (later)
  1177. chan3:    bsr.L    newrou
  1178.     move.w    (a6),(a4)
  1179.     move.w    (a6),16(a6)        ;save note for effect
  1180.     move.l    4(a6),0(a5)        ;set samplestart
  1181.     move.w    8(a6),4(a5)        ;set samplelength
  1182.     move.w    (a6),6(a5)        ;set period
  1183.     move.w    22(a6),d0
  1184.     or.w    d0,enbits        ;store dma-bit
  1185.     move.w    18(a6),20(a6)        ;volume trigger
  1186. chan4:    rts
  1187.  
  1188. datach0:    blk.w    11,0
  1189.         dc.w    1
  1190. datach1:    blk.w    11,0
  1191.         dc.w    2
  1192. datach2:    blk.w    11,0
  1193.         dc.w    4
  1194. datach3:    blk.w    11,0
  1195.         dc.w    8
  1196. voi1:        dc.w    0
  1197. voi2:        dc.w    0
  1198. voi3:        dc.w    0
  1199. voi4:        dc.w    0
  1200. pointers:    blk.l    15,0
  1201. notetable:    dc.w    856,808,762,720,678,640,604,570
  1202.         dc.w    538,508,480,453,428,404,381,360
  1203.         dc.w    339,320,302,285,269,254,240,226  
  1204.         dc.w    214,202,190,180,170,160,151,143
  1205.         dc.w    135,127,120,113,000
  1206. muzakoffset:    dc.l    0
  1207. trkpos:        dc.l    0
  1208. patpos:        dc.l    0
  1209. numpat:        dc.w    0
  1210. enbits:        dc.w    0
  1211. timpos:        dc.w    0
  1212. data=$40000
  1213. Program_end:
  1214.  
  1215.